const router = require('express').Router();
const Jwt = require('../../common/token/jwt');//处理token的工具 json web token
const bannerModel = require('../../model/bannerModel');
const path = require('path');
const fs = require('fs');
const upload = require('../../common/upload');//定义处理图片的模块 （文件名称，文件路径）
const host = require('../host');

// 添加轮播图 (上传图片和收集信息分开写)
// URL: /api/banner/add
// 参数： src, href, banner_title, banner_content
// 思路：
// 1）首先判断用户是否登录
// 2）再判断是否提交了参数
// 3）最后调用api操作数据库
router.post('/add', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let { src, href, banner_title, banner_content } = req.body;
        // console.log({ src, href, banner_title, banner_content })
        if (src && href && banner_title) {
            let banner_id = Math.random().toString().slice(2) + "_" + (new Date().getTime())
            // 添加轮播图
            await bannerModel.add(src, href, banner_id, banner_title, banner_content)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )
        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }




})

// 添加轮播图 (上传图片和收集信息写在一起)
// URL: /api/banner/upload
// 参数： href, banner_title, banner_content
router.post('/upload', upload.single('photo'),  async (req, res) => {
    // 接收前端的文件(图片)
    let file = req.file;
    console.log("file:",file);
    let token = req.body.token || req.headers.token;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        // 登录状态
        let {href, banner_title, banner_content } = req.body;
         // 定义图片路径 
        let src = `${host.url}/upload/images/${file.filename}`;
        console.log({ src, href, banner_title, banner_content });
        if (src && href && banner_title && file != undefined) {
            let banner_id = Math.random().toString().slice(2) + "_" + (new Date().getTime())
            // 添加轮播图
            await bannerModel.add(src, href, banner_id, banner_title, banner_content)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )
        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }
    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }




})



// 轮播图列表
// URL: /api/banner/list
// 参数：无
router.get('/list', async (req, res) => {
    // 获取轮播图列表
    await bannerModel.list()
        .then(
            (data) => {
                res.send(data);
            },
            (err) => {
                res.send(err);
            }
        )
})

// 删除轮播图
// URL: /api/banner/remove
// 参数： id , token
router.post('/remove', async (req, res) => {
    let token = req.body.token || req.headers.token;
    let { id } = req.body;
    let result = new Jwt(token).verifyToken()
    if (result.code == 200) {
        if (id) {
            // 登录状态
            // 删除轮播图
            await bannerModel.remove(id)
                .then(
                    (data) => {
                        res.send(data);
                    },
                    (err) => {
                        res.send(err);
                    }
                )
        }
        else {
            res.send({
                code: -1,
                msg: '缺少参数'
            })
        }

    }
    else {
        // 不是登录状态
        res.send({
            code: -1,
            msg: '您还没有登录哦。'
        })
    }
})



module.exports = router;